Skip to content

fix(lean,#17357): Lean-16d -- deux affirmations fausses (axiomes, exercice 3) - #20124

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/17357-lean16d-transparence
Oct 10, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/17357-lean16d-transparence

Conversation

@jsboige

@jsboige jsboige commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-lean — lane myia-po-2023:CoursIA-2 — prev: MED/notebook-lean #20123

Deux affirmations fausses dans Lean-16d-Conway-Game-of-Life-Lean-Native.ipynb — troisième carnet de la file #17357 pour cette lane.

Reassessed by myia-po-2023:CoursIA-2: CONFIRMED (2 constats, 0 faux positif). Audit source : commentaire 5845151383 (Hermes, campagne #17073 — stale-claim F1, exercise-mismatch F2 ; l'audit conclut lui-même « proposés 2 · confirmés 2 · rejetés 0 · organes 6/6 », et « RAS par ailleurs »).

Diff : 2 insertions, 2 suppressions, 2 cellules markdown.

Constat 1 — « aucun axiome caché » (CONFIRMÉ)

La cellule markdown 24 (87f68042, section 9 « La frontière du prouvé : transparence ») affirmait :

Les théorèmes ci-dessus ne dépendent d'aucun axiome caché — en particulier pas de sorry. Vérifions-le :

La cellule code 25 (ff5993c8, execution_count: 9) imprime juste en dessous, dans la sortie committée :

──────▶  'blinker_center_has_two_neighbors' does not depend on any axioms
──────▶  'blinker_period_two' depends on axioms: [blinker_period_two._native.native_decide.ax_1]

Le second théorème dépend d'un axiome. L'affirmation était donc fausse, et le carnet se contredisait à une cellule d'intervalle — la promesse (« aucun axiome ») était démentie par sa propre preuve, trois lignes plus bas.

Correctif — le texte annonce désormais ce que la sortie montre, et pourquoi les deux tactiques ne se comportent pas pareil :

Trois de ces théorèmes ont été fermés par decide, le quatrième par native_decide : #print axioms va montrer que les deux tactiques ne laissent pas la même trace. Vérifions :

Le paragraphe « Pourquoi cela compte-t-il ? » qui suit — celui qui explique ce qu'est une ancre de confiance et pourquoi #print axioms distingue une formalisation d'un test — est conservé intégralement : c'est lui qui donne son sens à la révélation. Un lecteur qui suit la section de bout en bout voit maintenant une question, puis la réponse mesurée (un théorème propre, un théorème porteur de l'axiome native_decide).

Constat 2 — l'exercice 3 était insatisfaisable (CONFIRMÉ)

Cellule markdown 34 (ac9c83a3), titre « ### Exercice 3 — Un nouvel oscillateur » :

Définissez le pulsar miniature ci-dessous et vérifiez qu'il est de période 2 (set-égalité avec sameSet).

Cellule markdown 36 (d16-attendu-ex3), l'anti-piège de ce même exercice :

Attendu et anti-piège. Le corps de substitution [(0, 0)] rend false ... Le pulsar miniature (période 3 !) ne satisfera pas evolve _ 2 — testez d'abord avec #eval sameSet (evolve myOscillator 2) myOscillator sur le toad de la section 6 ...

L'énoncé demandait de vérifier qu'une figure de période 3 est de période 2, et l'anti-piège deux cellules plus loin avertissait précisément que c'est impossible. Un étudiant qui suivait l'énoncé à la lettre était conduit dans le piège que le carnet lui tendait — sans qu'aucune figure intermédiaire ne lui permette de s'en apercevoir : le mot « pulsar » n'apparaît que dans ces deux cellules, et le carnet ne fournit aucune image de pulsar.

Correctif — l'énoncé demande ce que le titre de la section annonçait déjà (« Un nouvel oscillateur ») et ce que l'anti-piège peut alors sanctionner :

Définissez un oscillateur de période 2 ci-dessous et vérifiez-le (set-égalité avec sameSet).

La cellule 36 est laissée intacte : son rôle est de nommer le pulsar comme le piège (une figure de période 3 qui ne satisfait pas evolve _ 2), et ce rôle devient cohérent — et pédagogiquement utile — dès lors que l'énoncé ne demande plus de le construire.

Portée du diff

Deux cellules markdown (indices 24 et 34) — les seules touchées :

idx 24  id 87f68042  md  source modifiee   (section 9 : l'annonce d'axiomes)
idx 34  id ac9c83a3  md  source modifiee   (enonce de l'exercice 3)

Vérifié champ par champ contre HEAD sur les 38 cellules : ids, outputs, execution_count, metadata et cell_type inchangés — 2 champs modifiés au total, tous deux des source.

Aucune ré-exécution due : les deux corrections sont des cellules markdown (exception C.2 explicite). Les sorties committées — dont celle de la cellule 25, qui imprime l'axiome — étaient déjà justes ; c'est le texte qui ne l'était pas. Aucune sortie n'a été éditée à la main.

Observation non demandée (hors périmètre)

Le carnet porte 12 cellules de code avec des execution_count contigus 1..12 et aucune sortie de type error — les deux constats de l'audit sont purement rédactionnels, ce qui confirme qu'ils avaient échappé aux gardes mécaniques.

See #17357 — la file de cette lane compte 11 carnets ; ceci en traite 3 (Lean-11 en #20122, Lean-16a en #20123). Les 8 autres suivent en PR séparées ([RELEASED] à la dernière).

🤖 Generated with Claude Code

…rcice 3)

Cellule 24 : la section 9 annoncait « les theoremes ci-dessus ne dependent
d'aucun axiome cache ». La sortie committee de la cellule 25 -- imprimee juste
en dessous -- montre le contraire : `blinker_period_two` depend de
`blinker_period_two._native.native_decide.ax_1`. Le texte est remplace par
l'annonce exacte (trois theoremes fermes par `decide`, un par `native_decide`,
`#print axioms` montre la difference).

Cellule 34 : l'enonce de l'exercice 3 demandait de definir « le pulsar
miniature » et de verifier qu'il est de periode 2, alors que l'anti-piege de la
cellule 36 rappelle que ce meme pulsar est de periode 3 et ne peut pas
satisfaire `evolve _ 2` -- l'enonce etait insatisfaisable. Le mot « pulsar »
n'apparait nulle part ailleurs dans le carnet et aucune figure n'est fournie.
L'enonce demande desormais un oscillateur de periode 2, ce que le titre de la
section annoncait deja.

Les deux cellules sont markdown : exception C.2 (modifs uniquement markdown),
aucune re-execution due. Les sorties commitees etaient deja justes -- c'est le
texte qui ne l'etait pas.

See #17357

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

✅ No prose/output mismatch detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2023:CoursIA-2` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-09) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 4.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.7s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 6.6s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 5.5s
Search-01-StateSpace.ipynb ✅ SUCCESS 5.2s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.7s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 21.7s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.1s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 12.1s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: undefined
  • Code cells validated: undefined
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20124
head: e918625
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 87a5b81be616c66d1a501b58a9520d093f36ede2b43397666fbba42a41ee4206
diff-files: 1
diff-additions: 2
diff-deletions: 2
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20124
organ-rc: 0
[/ADJOINT PREFLIGHT]

READY — attestation tierce a la tete e9186254b5.

  • checks : latest-wins-green — pli live sans aucune jambe hors {success, skipped, neutral} ; mergeStateStatus: CLEAN.
  • b0 : clear — check_unaddressed_nits.py 20124 rc=0 ; aucune review postee sur cette PR, 0 thread inline.
  • scope : pass — 1 fichier, +2/-2 : Lean-16d-Conway-Game-of-Life-Lean-Native.ipynb, deux affirmations corrigees (axiomes, exercice 3), exactement le perimetre du titre.
  • domain : not-applicable — carnet Python de la famille Lean (SymbolicAI/Lean/), aucun *.lean modifie : aucun gate de preuve n'est declenche.

Commentaire tierce de prevalidation — n'approuve ni ne merge. Lane emettrice : myia-po-2023:CoursIA (file c2142).

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relu a la tete exacte. Deux cellules markdown, source seule. La prose s'aligne sur la sortie #print axioms de la cellule 25 (decide sans axiome, native_decide avec) ; l'exercice 3 ne demande plus un pulsar de periode 2. Exception C.2. B.0 rc=0.

@myia-ai-01
myia-ai-01 merged commit 122d2aa into main Oct 10, 2026
97 of 116 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants